#include "cputest.h"

TEST(test12, \
	"l_%=: \n\t" \
	"bsf %%eax, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test13, \
	"l_%=: \n\t" \
	"bsf %%eax, %%eax \n\t" \
	"bsf %%ebx, %%ebx \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test14, \
	"l_%=: \n\t" \
	"bsf %%eax, %%eax \n\t" \
	"bsf %%ebx, %%ebx \n\t" \
	"bsf %%edx, %%edx \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test15a, \
	"movl $0, %%eax \n\t" \
	"l_%=: \n\t" \
	"test $1, %%eax \n\t" \
	"jnz lb_%= \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"lb_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test15b, \
	"movl $1, %%eax \n\t" \
	"l_%=: \n\t" \
	"test $1, %%eax \n\t" \
	"jnz lb_%= \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"lb_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test16, \
	"l_%=: \n\t" \
	"test $1, %%ecx \n\t" \
	"jnz lb_%= \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"lb_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test17, \
	"l_%=: \n\t" \
	"test $1, %%ecx \n\t" \
	"nop \n\t" \
	"jnz lb_%= \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"lb_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test18, \
	"l_%=: \n\t" \
	"test $1, %%ecx \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"jnz lb_%= \n\t" \
	"nop \n\t" \
	"lb_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test19, \
	"l_%=: \n\t" \
	"test $1, %%ecx \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"jnz lb_%= \n\t" \
	"lb_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test20, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test21, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test22, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test23, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"paddb %%mm0, %%mm4 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test24, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"paddb %%mm0, %%mm4 \n\t" \
	"paddb %%mm0, %%mm5 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test25, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"paddb %%mm0, %%mm4 \n\t" \
	"paddb %%mm0, %%mm5 \n\t" \
	"paddb %%mm0, %%mm6 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test26, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"paddb %%mm0, %%mm4 \n\t" \
	"paddb %%mm0, %%mm5 \n\t" \
	"paddb %%mm0, %%mm6 \n\t" \
	"paddb %%mm0, %%mm7 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test30, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test31, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test32, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test33, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test34, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"paddb %%mm4, %%mm5 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test35, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"paddb %%mm4, %%mm5 \n\t" \
	"paddb %%mm5, %%mm6 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test36, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"paddb %%mm4, %%mm5 \n\t" \
	"paddb %%mm5, %%mm6 \n\t" \
	"paddb %%mm6, %%mm7 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test40, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"pextrw $0, %%mm1, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test41, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"pextrw $0, %%mm2, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test42, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"pextrw $0, %%mm3, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test43, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"pextrw $0, %%mm4, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test44, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"paddb %%mm4, %%mm5 \n\t" \
	"pextrw $0, %%mm5, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test45, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"paddb %%mm4, %%mm5 \n\t" \
	"paddb %%mm5, %%mm6 \n\t" \
	"pextrw $0, %%mm6, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test46, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"paddb %%mm4, %%mm5 \n\t" \
	"paddb %%mm5, %%mm6 \n\t" \
	"paddb %%mm6, %%mm7 \n\t" \
	"pextrw $0, %%mm7, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

test12: 4.041081
test13: 6.041141
test14: 8.082746
test15a: 7.082768
test15b: 5.041121
test16: 14.666036
test17: 11.174473
test18: 15.707115
test19: 13.602268
test20: 6.041002
test21: 6.041039
test22: 6.041688
test23: 8.082708
test24: 10.124381
test25: 12.124400
test26: 14.165545
test30: 6.040994
test31: 6.041074
test32: 6.041701
test33: 8.082757
test34: 12.124307
test35: 13.165496
test36: 16.166097
test40: 18.207114
test41: 24.291087
test42: 30.374365
test43: 36.457086
test44: 42.539815
test45: 48.622615
test46: 54.705680
